home *** CD-ROM | disk | FTP | other *** search
/ Kompuutteri K-CD 2002 #1 / K-CD_2002-01.iso / Delphi / INSTALL / program files / Borland / Delphi6 / Doc / StdCtrls.int < prev    next >
Encoding:
Text File  |  2001-05-22  |  30.0 KB  |  979 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       Borland Delphi Visual Component Library         }
  5. {                                                       }
  6. {  Copyright (c) 1995-2001 Borland Software Corporation }
  7. {                                                       }
  8. {*******************************************************}
  9.  
  10. unit StdCtrls;
  11.  
  12. {$R-,T-,H+,X+}
  13.  
  14. interface
  15.  
  16. uses Messages, Windows, SysUtils, Controls, Forms, Classes, Menus, Graphics;
  17.  
  18. type
  19.   TCustomGroupBox = class(TCustomControl)
  20.   protected
  21.     procedure AdjustClientRect(var Rect: TRect); override;
  22.     procedure CreateParams(var Params: TCreateParams); override;
  23.     procedure Paint; override;
  24.   public
  25.     constructor Create(AOwner: TComponent); override;
  26.   end;
  27.  
  28.   TGroupBox = class(TCustomGroupBox)
  29.   published
  30.     property Align;
  31.     property Anchors;
  32.     property BiDiMode;
  33.     property Caption;
  34.     property Color;
  35.     property Constraints;
  36.     property Ctl3D;
  37.     property DockSite;
  38.     property DragCursor;
  39.     property DragKind;
  40.     property DragMode;
  41.     property Enabled;
  42.     property Font;
  43.     property ParentBiDiMode;
  44.     property ParentColor;
  45.     property ParentCtl3D;
  46.     property ParentFont;
  47.     property ParentShowHint;
  48.     property PopupMenu;
  49.     property ShowHint;
  50.     property TabOrder;
  51.     property TabStop;
  52.     property Visible;
  53.     property OnClick;
  54.     property OnContextPopup;
  55.     property OnDblClick;
  56.     property OnDragDrop;
  57.     property OnDockDrop;
  58.     property OnDockOver;
  59.     property OnDragOver;
  60.     property OnEndDock;
  61.     property OnEndDrag;
  62.     property OnEnter;
  63.     property OnExit;
  64.     property OnGetSiteInfo;
  65.     property OnMouseDown;
  66.     property OnMouseMove;
  67.     property OnMouseUp;
  68.     property OnStartDock;
  69.     property OnStartDrag;
  70.     property OnUnDock;
  71.   end;
  72.  
  73.   TTextLayout = (tlTop, tlCenter, tlBottom);
  74.  
  75.   TCustomLabel = class(TGraphicControl)
  76.   protected
  77.     procedure AdjustBounds; dynamic;
  78.     procedure DoDrawText(var Rect: TRect; Flags: Longint); dynamic;
  79.     function GetLabelText: string; virtual;
  80.     procedure Loaded; override;
  81.     procedure Notification(AComponent: TComponent;
  82.       Operation: TOperation); override;
  83.     procedure Paint; override;
  84.     procedure SetAutoSize(Value: Boolean); override;
  85.     property Alignment: TAlignment default taLeftJustify;
  86.     property AutoSize: Boolean default True;
  87.     property FocusControl: TWinControl;
  88.     property ShowAccelChar: Boolean default True;
  89.     property Transparent: Boolean default False;
  90.     property Layout: TTextLayout default tlTop;
  91.     property WordWrap: Boolean default False;
  92.   public
  93.     constructor Create(AOwner: TComponent); override;
  94.     property Caption;
  95.     property Canvas;
  96.     property OnMouseEnter: TNotifyEvent;
  97.     property OnMouseLeave: TNotifyEvent;
  98.   end;
  99.  
  100.   TLabel = class(TCustomLabel)
  101.   published
  102.     property Align;
  103.     property Alignment;
  104.     property Anchors;
  105.     property AutoSize;
  106.     property BiDiMode;
  107.     property Caption;
  108.     property Color;
  109.     property Constraints;
  110.     property DragCursor;
  111.     property DragKind;
  112.     property DragMode;
  113.     property Enabled;
  114.     property FocusControl;
  115.     property Font;
  116.     property ParentBiDiMode;
  117.     property ParentColor;
  118.     property ParentFont;
  119.     property ParentShowHint;
  120.     property PopupMenu;
  121.     property ShowAccelChar;
  122.     property ShowHint;
  123.     property Transparent;
  124.     property Layout;
  125.     property Visible;
  126.     property WordWrap;
  127.     property OnClick;
  128.     property OnContextPopup;
  129.     property OnDblClick;
  130.     property OnDragDrop;
  131.     property OnDragOver;
  132.     property OnEndDock;
  133.     property OnEndDrag;
  134.     property OnMouseDown;
  135.     property OnMouseMove;
  136.     property OnMouseUp;
  137.     property OnMouseEnter;
  138.     property OnMouseLeave;
  139.     property OnStartDock;
  140.     property OnStartDrag;
  141.   end;
  142.  
  143.   TEditCharCase = (ecNormal, ecUpperCase, ecLowerCase);
  144.  
  145.   TCustomEdit = class(TWinControl)
  146.   protected
  147.     procedure Change; dynamic;
  148.     procedure CreateParams(var Params: TCreateParams); override;
  149.     procedure CreateWindowHandle(const Params: TCreateParams); override;
  150.     procedure CreateWnd; override;
  151.     procedure DestroyWnd; override;
  152.     procedure DoSetMaxLength(Value: Integer); virtual;
  153.     function GetSelLength: Integer; virtual;
  154.     function GetSelStart: Integer; virtual;
  155.     function GetSelText: string; virtual;
  156.     procedure SetAutoSize(Value: Boolean); override;
  157.     procedure SetSelLength(Value: Integer); virtual;
  158.     procedure SetSelStart(Value: Integer); virtual;
  159.     property AutoSelect: Boolean default True;
  160.     property AutoSize: Boolean default True;
  161.     property BorderStyle: TBorderStyle default bsSingle;
  162.     property CharCase: TEditCharCase default ecNormal;
  163.     property HideSelection: Boolean default True;
  164.     property MaxLength: Integer default 0;
  165.     property OEMConvert: Boolean default False;
  166.     property PasswordChar: Char default #0;
  167.     property ParentColor default False;
  168.     property ReadOnly: Boolean default False;
  169.     property OnChange: TNotifyEvent;
  170.   public
  171.     constructor Create(AOwner: TComponent); override;
  172.     procedure Clear; virtual;
  173.     procedure ClearSelection;
  174.     procedure CopyToClipboard;
  175.     procedure CutToClipboard;
  176.     procedure DefaultHandler(var Message); override;
  177.     procedure PasteFromClipboard;
  178.     procedure Undo;
  179.     procedure ClearUndo;
  180.     function GetSelTextBuf(Buffer: PChar; BufSize: Integer): Integer; virtual;
  181.     procedure SelectAll;
  182.     procedure SetSelTextBuf(Buffer: PChar);
  183.     property CanUndo: Boolean;
  184.     property Modified: Boolean;
  185.     property SelLength: Integer;
  186.     property SelStart: Integer;
  187.     property SelText: string;
  188.     property Text;
  189.   published
  190.     property TabStop default True;
  191.   end;
  192.  
  193.   TEdit = class(TCustomEdit)
  194.   published
  195.     property Anchors;
  196.     property AutoSelect;
  197.     property AutoSize;
  198.     property BevelEdges;
  199.     property BevelInner;
  200.     property BevelKind default bkNone;
  201.     property BevelOuter;
  202.     property BiDiMode;
  203.     property BorderStyle;
  204.     property CharCase;
  205.     property Color;
  206.     property Constraints;
  207.     property Ctl3D;
  208.     property DragCursor;
  209.     property DragKind;
  210.     property DragMode;
  211.     property Enabled;
  212.     property Font;
  213.     property HideSelection;
  214.     property ImeMode;
  215.     property ImeName;
  216.     property MaxLength;
  217.     property OEMConvert;
  218.     property ParentBiDiMode;
  219.     property ParentColor;
  220.     property ParentCtl3D;
  221.     property ParentFont;
  222.     property ParentShowHint;
  223.     property PasswordChar;
  224.     property PopupMenu;
  225.     property ReadOnly;
  226.     property ShowHint;
  227.     property TabOrder;
  228.     property TabStop;
  229.     property Text;
  230.     property Visible;
  231.     property OnChange;
  232.     property OnClick;
  233.     property OnContextPopup;
  234.     property OnDblClick;
  235.     property OnDragDrop;
  236.     property OnDragOver;
  237.     property OnEndDock;
  238.     property OnEndDrag;
  239.     property OnEnter;
  240.     property OnExit;
  241.     property OnKeyDown;
  242.     property OnKeyPress;
  243.     property OnKeyUp;
  244.     property OnMouseDown;
  245.     property OnMouseMove;
  246.     property OnMouseUp;
  247.     property OnStartDock;
  248.     property OnStartDrag;
  249.   end;
  250.  
  251.   TScrollStyle = (ssNone, ssHorizontal, ssVertical, ssBoth);
  252.  
  253.   TCustomMemo = class(TCustomEdit)
  254.   protected
  255.     function GetCaretPos: TPoint; virtual;
  256.     procedure SetCaretPos(const Value: TPoint); virtual;
  257.     procedure CreateParams(var Params: TCreateParams); override;
  258.     procedure CreateWindowHandle(const Params: TCreateParams); override;
  259.     procedure KeyPress(var Key: Char); override;
  260.     procedure Loaded; override;
  261.     procedure SetAlignment(Value: TAlignment);
  262.     procedure SetLines(Value: TStrings);
  263.     procedure SetScrollBars(Value: TScrollStyle);
  264.     procedure SetWordWrap(Value: Boolean);
  265.     property Alignment: TAlignment default taLeftJustify;
  266.     property ScrollBars: TScrollStyle default ssNone;
  267.     property WantReturns: Boolean default True;
  268.     property WantTabs: Boolean default False;
  269.     property WordWrap: Boolean default True;
  270.   public
  271.     constructor Create(AOwner: TComponent); override;
  272.     destructor Destroy; override;
  273.     function GetControlsAlignment: TAlignment; override;
  274.     property CaretPos: TPoint;
  275.     property Lines: TStrings;
  276.   end;
  277.  
  278.   TMemo = class(TCustomMemo)
  279.   published
  280.     property Align;
  281.     property Alignment;
  282.     property Anchors;
  283.     property BevelEdges;
  284.     property BevelInner;
  285.     property BevelKind default bkNone;
  286.     property BevelOuter;
  287.     property BiDiMode;
  288.     property BorderStyle;
  289.     property Color;
  290.     property Constraints;
  291.     property Ctl3D;
  292.     property DragCursor;
  293.     property DragKind;
  294.     property DragMode;
  295.     property Enabled;
  296.     property Font;
  297.     property HideSelection;
  298.     property ImeMode;
  299.     property ImeName;
  300.     property Lines;
  301.     property MaxLength;
  302.     property OEMConvert;
  303.     property ParentBiDiMode;
  304.     property ParentColor;
  305.     property ParentCtl3D;
  306.     property ParentFont;
  307.     property ParentShowHint;
  308.     property PopupMenu;
  309.     property ReadOnly;
  310.     property ScrollBars;
  311.     property ShowHint;
  312.     property TabOrder;
  313.     property TabStop;
  314.     property Visible;
  315.     property WantReturns;
  316.     property WantTabs;
  317.     property WordWrap;
  318.     property OnChange;
  319.     property OnClick;
  320.     property OnContextPopup;
  321.     property OnDblClick;
  322.     property OnDragDrop;
  323.     property OnDragOver;
  324.     property OnEndDock;
  325.     property OnEndDrag;
  326.     property OnEnter;
  327.     property OnExit;
  328.     property OnKeyDown;
  329.     property OnKeyPress;
  330.     property OnKeyUp;
  331.     property OnMouseDown;
  332.     property OnMouseMove;
  333.     property OnMouseUp;
  334.     property OnStartDock;
  335.     property OnStartDrag;
  336.   end;
  337.  
  338.   TOwnerDrawState = Windows.TOwnerDrawState;
  339.   {$NODEFINE TOwnerDrawState}
  340.  
  341.   TCustomCombo = class;
  342.   TDrawItemEvent = procedure(Control: TWinControl; Index: Integer;
  343.     Rect: TRect; State: TOwnerDrawState) of object;
  344.  
  345.   TMeasureItemEvent = procedure(Control: TWinControl; Index: Integer;
  346.     var Height: Integer) of object;
  347.  
  348.   TCustomComboBoxStrings = class(TStrings)
  349.   protected
  350.     function GetCount: Integer; override;
  351.     function Get(Index: Integer): string; override;
  352.     function GetObject(Index: Integer): TObject; override;
  353.     procedure PutObject(Index: Integer; AObject: TObject); override;
  354.     procedure SetUpdateState(Updating: Boolean); override;
  355.     property ComboBox: TCustomCombo;
  356.   public
  357.     procedure Clear; override;
  358.     procedure Delete(Index: Integer); override;
  359.     function IndexOf(const S: string): Integer; override;
  360.   end;
  361.  
  362.   TCustomComboBoxStringsClass = class of TCustomComboBoxStrings;
  363.  
  364.   TCustomCombo = class(TCustomListControl)
  365.   protected
  366.     FEditHandle: HWnd;
  367.     FListHandle: HWnd;
  368.     FDropHandle: HWnd;
  369.     FEditInstance: Pointer;
  370.     FDefEditProc: Pointer;
  371.     FListInstance: Pointer;
  372.     FDefListProc: Pointer;
  373.     FDroppingDown: Boolean;
  374.     FFocusChanged: Boolean;
  375.     FIsFocused: Boolean;
  376.     FSaveIndex: Integer;
  377.     procedure AdjustDropDown; virtual;
  378.     procedure ComboWndProc(var Message: TMessage; ComboWnd: HWnd;
  379.       ComboProc: Pointer); virtual;
  380.     procedure CreateWnd; override;
  381.     procedure EditWndProc(var Message: TMessage);
  382.     function GetItemsClass: TCustomComboBoxStringsClass; virtual; abstract;
  383.     procedure WndProc(var Message: TMessage); override;
  384.     function GetItemHt: Integer; virtual; abstract;
  385.     procedure SetItemHeight(Value: Integer); virtual;
  386.     function GetCount: Integer; override;
  387.     function GetItemCount: Integer; virtual; abstract;
  388.     function GetItemIndex: Integer; override;
  389.     function GetDroppedDown: Boolean;
  390.     function GetSelLength: Integer;
  391.     function GetSelStart: Integer;
  392.     procedure ListWndProc(var Message: TMessage);
  393.     procedure Loaded; override;
  394.     procedure Change; dynamic;
  395.     procedure Select; dynamic;
  396.     procedure DropDown; dynamic;
  397.     procedure CloseUp; dynamic;
  398.     procedure DestroyWindowHandle; override;
  399.     procedure SetDroppedDown(Value: Boolean);
  400.     procedure SetSelLength(Value: Integer);
  401.     procedure SetSelStart(Value: Integer);
  402.     procedure SetMaxLength(Value: Integer);
  403.     procedure SetDropDownCount(const Value: Integer); virtual;
  404.     procedure SetItemIndex(const Value: Integer); override;
  405.     procedure SetItems(const Value: TStrings); virtual;
  406.     property DropDownCount: Integer default 8;
  407.     property EditHandle: HWnd;
  408.     property ItemCount: Integer;
  409.     property ItemHeight: Integer;
  410.     property ListHandle: HWnd;
  411.     property MaxLength: Integer default 0;
  412.     property ParentColor default False;
  413.     property OnChange: TNotifyEvent;
  414.     property OnDropDown: TNotifyEvent;
  415.     property OnSelect: TNotifyEvent;
  416.     property OnCloseUp: TNotifyEvent;
  417.   public
  418.     constructor Create(AOwner: TComponent); override;
  419.     destructor Destroy; override;
  420.     procedure AddItem(Item: String; AObject: TObject); override;
  421.     procedure Clear; override;
  422.     procedure ClearSelection; override;
  423.     procedure CopySelection(Destination: TCustomListControl); override;
  424.     procedure DeleteSelected; override;
  425.     function Focused: Boolean; override;
  426.     procedure SelectAll; override;
  427.     property Canvas: TCanvas;
  428.     property DroppedDown: Boolean;
  429.     property Items: TStrings;
  430.     property SelLength: Integer;
  431.     property SelStart: Integer;
  432.     property TabStop default True;
  433.   end;
  434.  
  435.   TComboBoxStyle = (csDropDown, csSimple, csDropDownList, csOwnerDrawFixed,
  436.     csOwnerDrawVariable);
  437.  
  438.   TCustomComboBox = class(TCustomCombo)
  439.   protected
  440.     procedure CreateParams(var Params: TCreateParams); override;
  441.     procedure CreateWnd; override;
  442.     procedure DestroyWnd; override;
  443.     procedure DrawItem(Index: Integer; Rect: TRect;
  444.       State: TOwnerDrawState); virtual;
  445.     function  GetItemHt: Integer; override;
  446.     function GetItemsClass: TCustomComboBoxStringsClass; override;
  447.     function GetSelText: string;
  448.     procedure KeyPress(var Key: Char); override;
  449.     procedure MeasureItem(Index: Integer; var Height: Integer); virtual;
  450.     function SelectItem(const AnItem: String): Boolean;
  451.     procedure SetStyle(Value: TComboBoxStyle); virtual;
  452.     property Sorted: Boolean default False;
  453.     property Style: TComboBoxStyle default csDropDown;
  454.     property OnDrawItem: TDrawItemEvent;
  455.     property OnMeasureItem: TMeasureItemEvent;
  456.     procedure WndProc(var Message: TMessage); override;
  457.     function GetItemCount: Integer; override;
  458.   public
  459.     constructor Create(AOwner: TComponent); override;
  460.     destructor Destroy; override;
  461.     property AutoComplete: Boolean default True;
  462.     property AutoDropDown: Boolean default False;
  463.     property CharCase: TEditCharCase default ecNormal;
  464.     property SelText: string;
  465.   end;
  466.  
  467.   TComboBox = class(TCustomComboBox)
  468.   published
  469.     property AutoComplete default True;
  470.     property AutoDropDown default False;
  471.     property BevelEdges;
  472.     property BevelInner;
  473.     property BevelKind default bkNone;
  474.     property BevelOuter;
  475.     property Style; {Must be published before Items}
  476.     property Anchors;
  477.     property BiDiMode;
  478.     property CharCase;
  479.     property Color;
  480.     property Constraints;
  481.     property Ctl3D;
  482.     property DragCursor;
  483.     property DragKind;
  484.     property DragMode;
  485.     property DropDownCount;
  486.     property Enabled;
  487.     property Font;
  488.     property ImeMode;
  489.     property ImeName;
  490.     property ItemHeight;
  491.     property ItemIndex default -1;
  492.     property MaxLength;
  493.     property ParentBiDiMode;
  494.     property ParentColor;
  495.     property ParentCtl3D;
  496.     property ParentFont;
  497.     property ParentShowHint;
  498.     property PopupMenu;
  499.     property ShowHint;
  500.     property Sorted;
  501.     property TabOrder;
  502.     property TabStop;
  503.     property Text;
  504.     property Visible;
  505.     property OnChange;
  506.     property OnClick;
  507.     property OnCloseUp;
  508.     property OnContextPopup;
  509.     property OnDblClick;
  510.     property OnDragDrop;
  511.     property OnDragOver;
  512.     property OnDrawItem;
  513.     property OnDropDown;
  514.     property OnEndDock;
  515.     property OnEndDrag;
  516.     property OnEnter;
  517.     property OnExit;
  518.     property OnKeyDown;
  519.     property OnKeyPress;
  520.     property OnKeyUp;
  521.     property OnMeasureItem;
  522.     property OnSelect;
  523.     property OnStartDock;
  524.     property OnStartDrag;
  525.     property Items; { Must be published after OnMeasureItem }
  526.   end;
  527.  
  528. { TButtonControl }
  529.  
  530.   TButtonControl = class;
  531.  
  532.   TButtonActionLink = class(TWinControlActionLink)
  533.   protected
  534.     FClient: TButtonControl;
  535.     procedure AssignClient(AClient: TObject); override;
  536.     function IsCheckedLinked: Boolean; override;
  537.     procedure SetChecked(Value: Boolean); override;
  538.   end;
  539.  
  540.   TButtonActionLinkClass = class of TButtonActionLink;
  541.  
  542.   TButtonControl = class(TWinControl)
  543.   protected
  544.     procedure ActionChange(Sender: TObject; CheckDefaults: Boolean); override;
  545.     function GetActionLinkClass: TControlActionLinkClass; override;
  546.     function GetChecked: Boolean; virtual;
  547.     procedure SetChecked(Value: Boolean); virtual;
  548.     procedure WndProc(var Message: TMessage); override;
  549.     property Checked: Boolean default False;
  550.     property ClicksDisabled: Boolean;
  551.   public
  552.     constructor Create(AOwner: TComponent); override;
  553.   end;
  554.  
  555.   TButton = class(TButtonControl)
  556.   protected
  557.     procedure CreateParams(var Params: TCreateParams); override;
  558.     procedure CreateWnd; override;
  559.     procedure SetButtonStyle(ADefault: Boolean); virtual;
  560.   public
  561.     constructor Create(AOwner: TComponent); override;
  562.     procedure Click; override;
  563.     function UseRightToLeftAlignment: Boolean; override;
  564.   published
  565.     property Action;
  566.     property Anchors;
  567.     property BiDiMode;
  568.     property Cancel: Boolean default False;
  569.     property Caption;
  570.     property Constraints;
  571.     property Default: Boolean default False;
  572.     property DragCursor;
  573.     property DragKind;
  574.     property DragMode;
  575.     property Enabled;
  576.     property Font;
  577.     property ModalResult: TModalResult default 0;
  578.     property ParentBiDiMode;
  579.     property ParentFont;
  580.     property ParentShowHint;
  581.     property PopupMenu;
  582.     property ShowHint;
  583.     property TabOrder;
  584.     property TabStop default True;
  585.     property Visible;
  586.     property OnClick;
  587.     property OnContextPopup;
  588.     property OnDragDrop;
  589.     property OnDragOver;
  590.     property OnEndDock;
  591.     property OnEndDrag;
  592.     property OnEnter;
  593.     property OnExit;
  594.     property OnKeyDown;
  595.     property OnKeyPress;
  596.     property OnKeyUp;
  597.     property OnMouseDown;
  598.     property OnMouseMove;
  599.     property OnMouseUp;
  600.     property OnStartDock;
  601.     property OnStartDrag;
  602.   end;
  603.  
  604.   TCheckBoxState = (cbUnchecked, cbChecked, cbGrayed);
  605.  
  606.   TCustomCheckBox = class(TButtonControl)
  607.   protected
  608.     procedure Toggle; virtual;
  609.     procedure Click; override;
  610.     procedure CreateParams(var Params: TCreateParams); override;
  611.     procedure CreateWnd; override;
  612.     function GetChecked: Boolean; override;
  613.     procedure SetChecked(Value: Boolean); override;
  614.     property Alignment: TLeftRight default taRightJustify;
  615.     property AllowGrayed: Boolean default False;
  616.     property State: TCheckBoxState default cbUnchecked;
  617.   public
  618.     constructor Create(AOwner: TComponent); override;
  619.     function GetControlsAlignment: TAlignment; override;
  620.   published
  621.     property TabStop default True;
  622.   end;
  623.  
  624.   TCheckBox = class(TCustomCheckBox)
  625.   published
  626.     property Action;
  627.     property Alignment;
  628.     property AllowGrayed;
  629.     property Anchors;
  630.     property BiDiMode;
  631.     property Caption;
  632.     property Checked;
  633.     property Color;
  634.     property Constraints;
  635.     property Ctl3D;
  636.     property DragCursor;
  637.     property DragKind;
  638.     property DragMode;
  639.     property Enabled;
  640.     property Font;
  641.     property ParentBiDiMode;
  642.     property ParentColor;
  643.     property ParentCtl3D;
  644.     property ParentFont;
  645.     property ParentShowHint;
  646.     property PopupMenu;
  647.     property ShowHint;
  648.     property State;
  649.     property TabOrder;
  650.     property TabStop;
  651.     property Visible;
  652.     property OnClick;
  653.     property OnContextPopup;
  654.     property OnDragDrop;
  655.     property OnDragOver;
  656.     property OnEndDock;
  657.     property OnEndDrag;
  658.     property OnEnter;
  659.     property OnExit;
  660.     property OnKeyDown;
  661.     property OnKeyPress;
  662.     property OnKeyUp;
  663.     property OnMouseDown;
  664.     property OnMouseMove;
  665.     property OnMouseUp;
  666.     property OnStartDock;
  667.     property OnStartDrag;
  668.   end;
  669.  
  670.   TRadioButton = class(TButtonControl)
  671.   protected
  672.     function GetChecked: Boolean; override;
  673.     procedure SetChecked(Value: Boolean); override;
  674.     procedure CreateParams(var Params: TCreateParams); override;
  675.     procedure CreateWnd; override;
  676.   public
  677.     constructor Create(AOwner: TComponent); override;
  678.     function GetControlsAlignment: TAlignment; override;
  679.   published
  680.     property Action;
  681.     property Alignment: TLeftRight default taRightJustify;
  682.     property Anchors;
  683.     property BiDiMode;
  684.     property Caption;
  685.     property Checked;
  686.     property Color;
  687.     property Constraints;
  688.     property Ctl3D;
  689.     property DragCursor;
  690.     property DragKind;
  691.     property DragMode;
  692.     property Enabled;
  693.     property Font;
  694.     property ParentBiDiMode;
  695.     property ParentColor;
  696.     property ParentCtl3D;
  697.     property ParentFont;
  698.     property ParentShowHint;
  699.     property PopupMenu;
  700.     property ShowHint;
  701.     property TabOrder;
  702.     property TabStop;
  703.     property Visible;
  704.     property OnClick;
  705.     property OnContextPopup;
  706.     property OnDblClick;
  707.     property OnDragDrop;
  708.     property OnDragOver;
  709.     property OnEndDock;
  710.     property OnEndDrag;
  711.     property OnEnter;
  712.     property OnExit;
  713.     property OnKeyDown;
  714.     property OnKeyPress;
  715.     property OnKeyUp;
  716.     property OnMouseDown;
  717.     property OnMouseMove;
  718.     property OnMouseUp;
  719.     property OnStartDock;
  720.     property OnStartDrag;
  721.   end;
  722.  
  723.   TListBoxStyle = (lbStandard, lbOwnerDrawFixed, lbOwnerDrawVariable,
  724.     lbVirtual, lbVirtualOwnerDraw);
  725.   TLBGetDataEvent = procedure(Control: TWinControl; Index: Integer;
  726.     var Data: string) of object;
  727.   TLBGetDataObjectEvent = procedure(Control: TWinControl; Index: Integer;
  728.     var DataObject: TObject) of object;
  729.   TLBFindDataEvent = function(Control: TWinControl;
  730.     FindString: string): Integer of object;
  731.  
  732.   TCustomListBox = class(TCustomMultiSelectListControl)
  733.   protected
  734.     FMoving: Boolean;
  735.     procedure CreateParams(var Params: TCreateParams); override;
  736.     procedure CreateWnd; override;
  737.     procedure DestroyWnd; override;
  738.     function DoGetData(const Index: Integer): String;
  739.     function DoGetDataObject(const Index: Integer): TObject;
  740.     function DoFindData(const Data: String): Integer;
  741.     procedure WndProc(var Message: TMessage); override;
  742.     procedure DragCanceled; override;
  743.     procedure DrawItem(Index: Integer; Rect: TRect;
  744.       State: TOwnerDrawState); virtual;
  745.     function GetCount: Integer; override;
  746.     function GetSelCount: Integer; override;
  747.     procedure MeasureItem(Index: Integer; var Height: Integer); virtual;
  748.     function InternalGetItemData(Index: Integer): Longint; dynamic;
  749.     procedure InternalSetItemData(Index: Integer; AData: Longint); dynamic;
  750.     function GetItemData(Index: Integer): LongInt; dynamic;
  751.     function GetItemIndex: Integer; override;
  752.     function GetSelected(Index: Integer): Boolean;
  753.     procedure KeyPress(var Key: Char); override;
  754.     procedure SetItemData(Index: Integer; AData: LongInt); dynamic;
  755.     procedure ResetContent; dynamic;
  756.     procedure DeleteString(Index: Integer); dynamic;
  757.     procedure SetMultiSelect(Value: Boolean); override;
  758.     procedure SetItemIndex(const Value: Integer); override;
  759.     property BorderStyle: TBorderStyle default bsSingle;
  760.     property Columns: Integer default 0;
  761.     property ExtendedSelect: Boolean default True;
  762.     property IntegralHeight: Boolean default False;
  763.     property ItemHeight: Integer;
  764.     property ParentColor default False;
  765.     property Sorted: Boolean default False;
  766.     property Style: TListBoxStyle default lbStandard;
  767.     property TabWidth: Integer default 0;
  768.     property OnDrawItem: TDrawItemEvent;
  769.     property OnMeasureItem: TMeasureItemEvent;
  770.     property OnData: TLBGetDataEvent;
  771.     property OnDataObject: TLBGetDataObjectEvent;
  772.     property OnDataFind: TLBFindDataEvent;
  773.   public
  774.     constructor Create(AOwner: TComponent); override;
  775.     destructor Destroy; override;
  776.     procedure AddItem(Item: String; AObject: TObject); override;    
  777.     procedure Clear; override;
  778.     procedure ClearSelection; override;
  779.     procedure CopySelection(Destination: TCustomListControl); override;
  780.     procedure DeleteSelected; override;
  781.     function ItemAtPos(Pos: TPoint; Existing: Boolean): Integer;
  782.     function ItemRect(Index: Integer): TRect;
  783.     procedure SelectAll; override;
  784.     property AutoComplete: Boolean default True;
  785.     property Canvas: TCanvas;
  786.     property Count: Integer;
  787.     property Items: TStrings;
  788.     property Selected[Index: Integer]: Boolean;
  789.     property ScrollWidth: Integer default 0;
  790.     property TopIndex: Integer;
  791.   published
  792.     property TabStop default True;
  793.   end;
  794.  
  795.   TListBox = class(TCustomListBox)
  796.   published
  797.     property Style;  
  798.     property AutoComplete;
  799.     property Align;
  800.     property Anchors;
  801.     property BevelEdges;
  802.     property BevelInner;
  803.     property BevelKind default bkNone;
  804.     property BevelOuter;
  805.     property BiDiMode;
  806.     property BorderStyle;
  807.     property Color;
  808.     property Columns;
  809.     property Constraints;
  810.     property Ctl3D;
  811.     property DragCursor;
  812.     property DragKind;
  813.     property DragMode;
  814.     property Enabled;
  815.     property ExtendedSelect;
  816.     property Font;
  817.     property ImeMode;
  818.     property ImeName;
  819.     property IntegralHeight;
  820.     property ItemHeight;
  821.     property Items;
  822.     property MultiSelect;
  823.     property ParentBiDiMode;
  824.     property ParentColor;
  825.     property ParentCtl3D;
  826.     property ParentFont;
  827.     property ParentShowHint;
  828.     property PopupMenu;
  829.     property ScrollWidth;
  830.     property ShowHint;
  831.     property Sorted;
  832.     property TabOrder;
  833.     property TabStop;
  834.     property TabWidth;
  835.     property Visible;
  836.     property OnClick;
  837.     property OnContextPopup;
  838.     property OnData;
  839.     property OnDataFind;
  840.     property OnDataObject;        
  841.     property OnDblClick;
  842.     property OnDragDrop;
  843.     property OnDragOver;
  844.     property OnDrawItem;
  845.     property OnEndDock;
  846.     property OnEndDrag;
  847.     property OnEnter;
  848.     property OnExit;
  849.     property OnKeyDown;
  850.     property OnKeyPress;
  851.     property OnKeyUp;
  852.     property OnMeasureItem;
  853.     property OnMouseDown;
  854.     property OnMouseMove;
  855.     property OnMouseUp;
  856.     property OnStartDock;
  857.     property OnStartDrag;
  858.   end;
  859.  
  860.   TScrollCode = (scLineUp, scLineDown, scPageUp, scPageDown, scPosition,
  861.     scTrack, scTop, scBottom, scEndScroll);
  862.  
  863.   TScrollEvent = procedure(Sender: TObject; ScrollCode: TScrollCode;
  864.     var ScrollPos: Integer) of object;
  865.  
  866.   TScrollBar = class(TWinControl)
  867.   protected
  868.     procedure CreateParams(var Params: TCreateParams); override;
  869.     procedure CreateWnd; override;
  870.     procedure Change; dynamic;
  871.     procedure Scroll(ScrollCode: TScrollCode; var ScrollPos: Integer); dynamic;
  872.   public
  873.     constructor Create(AOwner: TComponent); override;
  874.     procedure SetParams(APosition, AMin, AMax: Integer);
  875.   published
  876.     property Align;
  877.     property Anchors;
  878.     property BiDiMode;
  879.     property Constraints;
  880.     property Ctl3D;
  881.     property DragCursor;
  882.     property DragKind;
  883.     property DragMode;
  884.     property Enabled;
  885.     property Kind: TScrollBarKind default sbHorizontal;
  886.     property LargeChange: TScrollBarInc default 1;
  887.     property Max: Integer default 100;
  888.     property Min: Integer default 0;
  889.     property PageSize: Integer;
  890.     property ParentBiDiMode;
  891.     property ParentCtl3D;
  892.     property ParentShowHint;
  893.     property PopupMenu;
  894.     property Position: Integer default 0;
  895.     property ShowHint;
  896.     property SmallChange: TScrollBarInc default 1;
  897.     property TabOrder;
  898.     property TabStop default True;
  899.     property Visible;
  900.     property OnContextPopup;
  901.     property OnChange: TNotifyEvent;
  902.     property OnDragDrop;
  903.     property OnDragOver;
  904.     property OnEndDock;
  905.     property OnEndDrag;
  906.     property OnEnter;
  907.     property OnExit;
  908.     property OnKeyDown;
  909.     property OnKeyPress;
  910.     property OnKeyUp;
  911.     property OnScroll: TScrollEvent;
  912.     property OnStartDock;
  913.     property OnStartDrag;
  914.   end;
  915.  
  916.   TStaticBorderStyle = (sbsNone, sbsSingle, sbsSunken);
  917.  
  918.   TCustomStaticText = class(TWinControl)
  919.   protected
  920.     procedure CreateParams(var Params: TCreateParams); override;
  921.     procedure Loaded; override;
  922.     procedure Notification(AComponent: TComponent; Operation: TOperation); override;
  923.     procedure SetAutoSize(Value: Boolean); override;
  924.     property Alignment: TAlignment default taLeftJustify;
  925.     property AutoSize: Boolean default True;
  926.     property BorderStyle: TStaticBorderStyle default sbsNone;
  927.     property FocusControl: TWinControl;
  928.     property ShowAccelChar: Boolean default True;
  929.   public
  930.     constructor Create(AOwner: TComponent); override;
  931.   end;
  932.  
  933.   TStaticText = class(TCustomStaticText)
  934.   published
  935.     property Align;
  936.     property Alignment;
  937.     property Anchors;
  938.     property AutoSize;
  939.     property BevelEdges;
  940.     property BevelInner;
  941.     property BevelKind default bkNone;
  942.     property BevelOuter;
  943.     property BiDiMode;
  944.     property BorderStyle;
  945.     property Caption;
  946.     property Color;
  947.     property Constraints;
  948.     property DragCursor;
  949.     property DragKind;
  950.     property DragMode;
  951.     property Enabled;
  952.     property FocusControl;
  953.     property Font;
  954.     property ParentBiDiMode;
  955.     property ParentColor;
  956.     property ParentFont;
  957.     property ParentShowHint;
  958.     property PopupMenu;
  959.     property ShowAccelChar;
  960.     property ShowHint;
  961.     property TabOrder;
  962.     property TabStop;
  963.     property Visible;
  964.     property OnClick;
  965.     property OnContextPopup;
  966.     property OnDblClick;
  967.     property OnDragDrop;
  968.     property OnDragOver;
  969.     property OnEndDock;
  970.     property OnEndDrag;
  971.     property OnMouseDown;
  972.     property OnMouseMove;
  973.     property OnMouseUp;
  974.     property OnStartDock;
  975.     property OnStartDrag;
  976.   end;
  977.  
  978. implementation
  979.